django

您所在的位置:网站首页 django model foreignkey django

django

2023-03-21 00:01| 来源: 网络整理| 查看: 265

Я пытаюсь использовать autocomplete_light и taggit как в форме администратора.

Я прочитал документацию по интеграции подсветки автозаполнения и taggit здесь, а также документацию по интеграции подсветки автозаполнения в админку здесь. Но, похоже, мало (или совсем нет) дискуссий о том, чтобы делать и то, и другое одновременно.

Что у меня есть до сих пор.

В models.py:

from django.db import models from taggit.managers import TaggableManager from taggit.models import TagBase, GenericTaggedItemBase class MyTag(TagBase): description = models.CharField(max_length = 250, blank = True, null = True) class MyTagThroughModel(GenericTaggedItemBase): tag = models.ForeignKey(MyTag, related_name = "tagged_items") class MyModel(models.Model): Name = models.CharField(max_length = 200) ... tags = TaggableManager(through = MyTagThroughModel)

В autocomplete_light_registry.py:

import autocomplete_light from models import MyTag autocomplete_light.register(MyTag)

Как я должен структурировать admin.py?

Если это не администраторская форма, поле будет иметь следующий вид:

tags = TagField(widget = TagWidget('MyTagAutocomplete'))

Если бы это была форма администратора без тегов git, я бы добавил в класс модели администратора следующее:

form = autocomplete_light.modelform_factory(MyTag)

Как я могу совместить два?

django django-admin django-taggit django-autocomplete-light 4 Luke 10 Янв 2014 в 23:09 2 ответа Лучший ответ

Как мне структурировать admin.py?

Вот пример автозаполнения тегов. Он показывает, как autocomplete_light и taggit работают в административных и неадминистративных формах.

models.py

from django.db import models from taggit.managers import TaggableManager class MyModel(models.Model): name = models.CharField(max_length = 200) tags = TaggableManager(blank=True)

autocomplete_light_registry.py

import autocomplete_light from taggit.models import Tag autocomplete_light.register(Tag)

forms.py

from django import forms import autocomplete_light from autocomplete_light.contrib import taggit_tagfield from models import MyModel class MyModelForm(forms.ModelForm): tags = taggit_tagfield.TagField(widget=taggit_tagfield.TagWidget('TagAutocomplete')) class Meta: model = MyModel widgets = { 'tags': autocomplete_light.TextWidget('TagAutocomplete'), }

admin.py

from django.contrib import admin import autocomplete_light from models import MyModel from forms import MyModelForm class MyModelAdmin(admin.ModelAdmin): form = MyModelForm model = MyModel admin.site.register(MyModel, MyModelAdmin)

views.py

from django.views.generic.edit import CreateView from models import MyModel from forms import MyModelForm class CreateMyModel(CreateView): model = MyModel form_class = MyModelForm

urls.py

from django.conf.urls import patterns, url from views import CreateMyModel urlpatterns = patterns('', url(r'^create/$', CreateMyModel.as_view()), )

быстрые документы кажутся более понятными, чем документы вы смотрели.

5 sebastian 14 Янв 2014 в 12:14

Вместо этого рассмотрите возможность использования django-taggit-autosuggest. .

Tag Autocomplete Autosuggest on Django

Лучше всего он работает с оболочкой администратора django-grapelli.

3 Pranab 5 Апр 2016 в 10:25


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3